//五子棋游戏模型类型
#ifndef GAMEMODEL_H
#define GAMEMODEL_H

#endif // GAMEMODEL_H
#include<vector>
using namespace std;
//游戏类型，双人，人机
enum GameType
{
    Man,//双人
    AI//人机
};

//游戏状态
enum GameStatus
{
    Playing,//正在游玩
    Win,//赢
    Dead//输
};

//棋盘尺寸
const int board_size = 15;//大小15*15格
const int margin = 30;//边缘空隙（棋盘与窗口）
const int mark_size = 6;//落子标记边长
const int chess_radius = 15;//棋子半径
const int block_size = 40;//格子大小
const int pos_offset = block_size * 0.4;//20 鼠标点击模糊距离上限

class GameModel
{
public:
    GameModel(){};
public:
    //当前棋盘和棋子情况，空白为0，黑子为1，白字为-1
    vector<vector<int>> gameMapVec;

    //现在下棋方，ture黑方 false白方
    bool playerflag;

    GameType gameType;//游戏类型
    GameStatus gameStatus;//游戏状态

    void startGame(GameType type);

    void actionPerson(int row,int col);
    void updateGameMap(int row,int col);

     bool iswin(int row,int col);
};
